package com.lovi.notepaper.entities;

import androidx.annotation.NonNull;
import androidx.room.ColumnInfo;
import androidx.room.Entity;
import androidx.room.PrimaryKey;

import java.io.Serializable;
/*
    这是笔记实体类 Note，它使用 @Entity 注解表示它是一个数据库实体，@Table 表示它所在的数据表的名称是 "note"。
    它有多个属性，包括笔记的唯一标识 id、标题 title、创建时间 dateTime、副标题 subtitle、文本内容 noteText、
    图片路径 imagePath、颜色 color 和网页链接 webLink。其中，id 是主键，并使用 @PrimaryKey 注解表示它是主键，
    autoGenerate = true 表示它是自动生成的。每个属性都使用 @ColumnInfo 注解，
    表示它在数据表中对应的列名。此外，还实现了 toString 方法，用于将笔记对象转换为字符串以便调试。
 */
@Entity(tableName = "note")
public class Note implements Serializable {
    @PrimaryKey(autoGenerate = true)//主键自动生成，并且通常自增
    @ColumnInfo(name = "id")
    private int id; // 笔记的唯一标识

    @ColumnInfo(name = "title")
    private String title; // 笔记的标题

    @ColumnInfo(name = "date_time")
    private String dateTime; // 笔记的创建时间

    @ColumnInfo(name = "subtitle")
    private String subtitle; // 笔记的副标题

    @ColumnInfo(name = "note_text")
    private String noteText; // 笔记的文本内容

    @ColumnInfo(name = "image_path")
    private String imagePath; // 笔记的图片路径

    @ColumnInfo(name = "color")
    private String color; // 笔记的颜色

    @ColumnInfo(name = "web_link")
    private String webLink; // 笔记的网页链接

    @ColumnInfo(name = "inColor")
    private String inColor; // 笔记详情背景颜色。

    @ColumnInfo(name = "outColor")
    private String outColor; // 主页的背景颜色。



    public String getInColor() {
        return inColor;
    }

    public void setInColor(String inColor) {
        this.inColor = inColor;
    }

    public String getOutColor() {
        return outColor;
    }

    public void setOutColor(String outColor) {
        this.outColor = outColor;
    }

    public int getId() {
        return id;
    }

    public void setId(int id) {
        this.id = id;
    }

    public String getTitle() {
        return title;
    }

    public void setTitle(String title) {
        this.title = title;
    }

    public String getDateTime() {
        return dateTime;
    }

    public void setDateTime(String dateTime) {
        this.dateTime = dateTime;
    }

    public String getSubtitle() {
        return subtitle;
    }

    public void setSubtitle(String subtitle) {
        this.subtitle = subtitle;
    }

    public String getNoteText() {
        return noteText;
    }

    public void setNoteText(String noteText) {
        this.noteText = noteText;
    }

    public String getImagePath() {
        return imagePath;
    }

    public void setImagePath(String imagePath) {
        this.imagePath = imagePath;
    }

    public String getColor() {
        return color;
    }

    public void setColor(String color) {
        this.color = color;
    }

    public String getWebLink() {
        return webLink;
    }

    public void setWebLink(String webLink) {
        this.webLink = webLink;
    }

    @Override
    public String toString() {
        final StringBuilder sb = new StringBuilder("Note{");
        sb.append("id=").append(id);
        sb.append(", title='").append(title).append('\'');
        sb.append(", dateTime='").append(dateTime).append('\'');
        sb.append(", subtitle='").append(subtitle).append('\'');
        sb.append(", noteText='").append(noteText).append('\'');
        sb.append(", imagePath='").append(imagePath).append('\'');
        sb.append(", color='").append(color).append('\'');
        sb.append(", webLink='").append(webLink).append('\'');
        sb.append('}');
        return sb.toString();
    }
}
